// any  任意类型  不特意指定类型
let num:any="1"
// console.log(num);


function foo(){
    return 123
}

function bar(){
    return "123"
}

let flag:boolean=false
let result:unknown;
if(flag){
    result=foo()
}else{
    result=bar()
}

// unknown 类型只能赋值给unknown 和 any 类型
let res:unknown=result
console.log(res);

// never(其他类型)
function baz():never{
    while(true){}
}

let arr:number[]=[1,2,3]

// tuple(元组)
let tulp:[string,number,boolean]=["1",2,true]

// enum(枚举)
// 我们定义了一个数字枚举， Up使用初始化为 1。 其余的成员会从 1开始自动增长。 
// 换句话说， Direction.Up的值为 1， Down为 2， Left为 3， Right为 4。
enum Direction {
    Up = 1,
    Down,
    Left,
    Right
}
console.log(Direction);
// 打印的结果
// {
//     '1': 'Up',
//     '2': 'Down',
//     '3': 'Left',
//     '4': 'Right',
//     Up: 1,
//     Down: 2,
//     Left: 3,
//     Right: 4
// }

// 联合类型 既可以是字符串类型也可以是数字类型
let str1:string|number=123


// 类型断言   as  假如前面的东西是后面的类型
let inp=document.getElementById("#box") as HTMLInputElement;
console.log(inp.value);


export {}